import axios from 'axios';
import { message } from 'antd';
import Nprogress from 'nprogress';
import 'nprogress/nprogress.css';

// 设置公共的前缀
axios.defaults.baseURL = 'https://bjwz.bwie.com/wipi';
// 设置请求延时
axios.defaults.timeout = 30000;
// axios 截取       请求    使用
axios.interceptors.request.use((config: any) => {
  let token = localStorage.getItem('token');
  if (token) {
    config.headers.Authorization = 'Bearer ' + token;
  }
  // 开启进度条
  Nprogress.start();
  // config 代表本次请求的信息
  return config;
});
// axios  截取      响应   使用
axios.interceptors.response.use(
  (data: any) => {
    // 提示message
    if (data.data.msg) {
      message.success(data.data.msg);
    }
    // 关闭进度条
    Nprogress.done();
    // data 代表本次请求的内容
    // 在响应拦截中return什么, 页面的请求就返回什么
    return data.data;
  },
  (error) => {
    // 响应式拦截第二个参数为错误处理
    // 根据不同的错误状态码提示不同的信息
    switch (error.response.data.statusCode) {
      case 401:
        message.error(error.response.data.msg);
        console.log(error.response.data.msg)
        break;
      case 403:
        message.warning('访客无权进行该操作');
        break;
      case 404:
        message.error(error.response.data.msg);
        break;
      case 200:
        message.success('操作成功');
        break;
      default:
        break;
    }
  },
);

export default axios;
